﻿Imports System.Windows.Forms
Imports Testeitor.Entidades
Imports Testeitor.DAO

Public Class DialogCasoUso

    Private _operacion As Util.Operacion
    Private _caso As CasoDeUsoEntity

    Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
        Dim dao As New RolDAO()
        Select Case _operacion
            Case Util.Operacion.GUARDAR
                Dim casoUso As New CasoDeUsoEntity(Convert.ToInt32(Me.txtNumero.Text), txtTitulo.Text, _
                        txtObjetivo.Text, txtDescripcion.Text, txtAutor.Text, _
                        DirectCast(cmbProyecto.SelectedValue, ProyectoEntity), txtUrl.Text)
                dao.Insertar(casoUso)
                Util.mensaje("El Proyecto se ha guardado correctamente!", "Proyecto Guardado")
            Case Util.Operacion.MODIFICAR
                _caso.Numero = Convert.ToInt32(txtNumero.Text)
                _caso.Titulo = txtTitulo.Text
                _caso.Objetivo = txtTitulo.Text
                _caso.Descripcion = txtDescripcion.Text
                _caso.Autor = txtAutor.Text
                _caso.Url = txtUrl.Text
                _caso.Proyecto = DirectCast(cmbProyecto.SelectedValue, ProyectoEntity)
                dao.Actualizar(_caso)
                Util.mensaje("El Proyecto se ha modificado correctamente!", "Proyecto Guardado")
            Case Util.Operacion.ELIMINAR
                dao.Eliminar(_caso.Id)
                Util.mensaje("El Proyecto se ha eliminado correctamente!", "Proyecto Guardado")
        End Select

        Me.DialogResult = System.Windows.Forms.DialogResult.OK
        Me.Close()
    End Sub

    Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
        Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
        Me.Close()
    End Sub

    Public Sub cargarDatos(ByVal caso As Entidades.EntityBase)
        _caso = caso
        txtNumero.Text = Convert.ToInt32(_caso.Numero)
        txtTitulo.Text = _caso.Titulo
        txtObjetivo.Text = _caso.Objetivo
        txtDescripcion.Text = _caso.Descripcion
        txtAutor.Text = _caso.Autor
        cmbProyecto.SelectedValue = _caso.Proyecto
        txtUrl.Text = _caso.Url

        Me.bloquear()
    End Sub

    Public Sub bloquear()
        If _operacion.Equals(Util.Operacion.ELIMINAR) Then
            txtAutor.Enabled = False
            txtDescripcion.Enabled = False
            txtNumero.Enabled = False
            txtObjetivo.Enabled = False
            txtTitulo.Enabled = False
            txtUrl.Enabled = False
        End If
    End Sub

    Public Sub New(ByVal oper As Util.Operacion)
        InitializeComponent()
        Me._operacion = oper
    End Sub

    Private Sub Dialogcaso_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim proyectoDAO As New ProyectoDAO
        Dim listaProyecto As System.Collections.Generic.List(Of Entidades.EntityBase) = proyectoDAO.SeleccionarTodas()

        Util.cargarComboEntity(Me.cmbProyecto, listaProyecto)
    End Sub

End Class
